package org.hank.wanandroid.utils

import android.content.Context
import com.google.android.material.snackbar.Snackbar
import com.lxj.xpopup.XPopup
import com.lxj.xpopup.impl.ConfirmPopupView
import org.hank.commom.base.BaseActivity
import org.hank.commom.base.BaseFragment
import org.hank.wanandroid.MainApplication

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 *@auth: Hank
 *邮箱: cs16xiaoc1@163.com
 *创建时间: 2021/5/25 9:51
 *描述: 弹框工具
 */

fun showTipsDialog(context: Context?, tipsMsg: String, confirm: () -> Unit) {
    XPopup.Builder(context ?: MainApplication.context)
        .asConfirm("提示", tipsMsg) {
            confirm.invoke()
        }.show()
}

fun showTipsDialog(context: Context?, tipsMsg: String) {
    var pop: ConfirmPopupView? = null
    pop = XPopup.Builder(context ?: MainApplication.context)
        .asConfirm("提示", tipsMsg) {
            pop!!.dismiss()
        }
    pop.show()
}

fun BaseActivity.showSnackToast(tipsMsg: String) {
    Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT).show()
}

fun BaseActivity.showSnackToast(tipsMsg: Int) {
    Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT).show()
}

fun BaseActivity.showSnackWithConfirm(tipsMsg: String, actionStr: String, lambda: () -> Unit) {
    var snackbar = Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT)
    snackbar.setAction(actionStr) {
        lambda.invoke()
    }
    snackbar.show()
}

fun BaseActivity.showSnackWithConfirm(tipsMsg: Int, actionStr: Int, lambda: () -> Unit) {
    var snackbar = Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT)
    snackbar.setAction(actionStr) {
        lambda.invoke()
    }
    snackbar.show()
}

fun BaseFragment.showSnackToast(tipsMsg: String) {
    Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT).show()
}

fun BaseFragment.showSnackToast(tipsMsg: Int) {
    Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT).show()
}

fun BaseFragment.showSnackWithConfirm(tipsMsg: String, actionStr: String, lambda: () -> Unit) {
    var snackbar = Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT)
    snackbar.setAction(actionStr) {
        lambda.invoke()
    }
    snackbar.show()
}

fun BaseFragment.showSnackWithConfirm(tipsMsg: Int, actionStr: Int, lambda: () -> Unit) {
    var snackbar = Snackbar.make(rootView, tipsMsg, Snackbar.LENGTH_SHORT)
    snackbar.setAction(actionStr) {
        lambda.invoke()
    }
    snackbar.show()
}